//: Filename : test.h
//: the header of test.cpp
//: Author : Li Ji
//: Date : 2014.05.13
//


#ifndef TEST_H
#define TEST_H
#include <iostream>
#include <vector>

template <typename T>
class Man
{
    public:
        static std::size_t houses;

    private:
        T _age;
    public:
        Man() {};
        inline T getAge() {return _age;};
        inline void setAge(T age) {_age = age;};
        template <typename T1> Man<T1>* getSun() { return new Man<T1>;};

}; //: Man

template <typename T> std::size_t Man<T>::houses = 10;

template <typename T> struct BaseDefs
{
    //typedef std::vector<T, std::allocator<T> > vecT;
    typedef std::vector<T> vecT;
    typedef std::vector<T*> vecTP;
    typedef std::vector<vecTP*> vvecTP;
};

#endif //: TEST_H
///:~
